﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace PaginacionApp
{
    public partial class Test : System.Web.UI.Page
    {
        
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
            Session["Saldos"]= cargarSaldosDiferidos();   
            }
            
            if(Session["Saldos"]!= null)
            {
               SaldoDiferidoDTO saldo = new SaldoDiferidoDTO();
               saldo= (SaldoDiferidoDTO) Session["Saldos"];
               DataGrid1.DataSource = saldo.DetalleSaldoDiferido;
               DataGrid1.DataBind();
            }
            else
            {
                Response.Write("Ud no presenta movimientos de saldo diferidos.");
            }




        }

        private  SaldoDiferidoDTO cargarSaldosDiferidos()
        {
            int cont = 1;
            SaldoDiferidoDTO saldo2 = new SaldoDiferidoDTO();
            saldo2.DetalleSaldoDiferido = new List<DetalleSaldoDiferidoDTO>();
            saldo2.NumeroDeCuenta = "1099823712";

            for (int i = 0; i < 100; i++)
            {
                DetalleSaldoDiferidoDTO detalle = new DetalleSaldoDiferidoDTO();
                detalle.Emisor = "a-" + i;
                detalle.FechaEmision = DateTime.Now.AddMinutes(i);
                detalle.FechaLiberacion = DateTime.Now.AddMinutes(i + 1);
                detalle.Monto = i*37.5;
                detalle.Referencia = (i*9837136).ToString();
                saldo2.DetalleSaldoDiferido.Add(detalle);
            }
            return saldo2;
        }

        protected void DataGrid1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            if (Session["Saldos"] != null)
            {
                SaldoDiferidoDTO saldo = new SaldoDiferidoDTO();
                saldo = (SaldoDiferidoDTO) Session["Saldos"];
                DataGrid1.PageIndex = e.NewPageIndex;
                DataGrid1.DataSource = saldo.DetalleSaldoDiferido;
                DataGrid1.DataBind();
          
            }
        }


    



    }





    public class SaldoDiferidoDTO
    {


        public string NumeroDeCuenta { get; set; }


        public List<DetalleSaldoDiferidoDTO> DetalleSaldoDiferido { get; set; }
    }

    public class DetalleSaldoDiferidoDTO
    {

        public DateTime FechaEmision { get; set; }


        public DateTime FechaLiberacion { get; set; }


        public string Referencia { get; set; }


        public string Emisor { get; set; }


        public double Monto { get; set; }
    }

}